﻿using BCCommon;
using BCCommon.Enums;
using BCCommon.Enums.Driver;
using BCCommon.TMS.Driver;
using System;
using System.ComponentModel.DataAnnotations;

namespace BCDto.TMS.Driver.Horseman
{
    public class HorsemanRequestDto
    {
        /// <summary>
        /// 手机号
        /// </summary>	
        [Display(Name = "手机号")]
        [Required(ErrorMessage = "{0} 不能为空")]
        [RegularExpression(RegexPatterns.PHONE, ErrorMessage = "{0} 应为11位中国运营商手机号")]
        public string Phone { get; set; }
        /// <summary>
        /// 骑手昵称
        /// </summary>	
        [Display(Name = "骑手昵称")]
        public string Name { get; set; }
        /// <summary>
        /// 骑手图像
        /// </summary>	
        [Display(Name = "骑手图像")]
        public string DriverPhotoPath { get; set; }
        /// <summary>
        /// 车型Id
        /// </summary>
        [Display(Name = "车型Id")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public int VehicleTypeId { get; set; }
        /// <summary>
        /// 性别
        /// </summary>
        [Display(Name = "性别")]
        public Sex Sex { get; set; }
        /// <summary>
        /// 车牌号
        /// </summary>
        [Display(Name = "车牌号")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string VehicleNo { get; set; }
        /// <summary>
        /// 注册区/县编码
        /// </summary>	
        [Display(Name = "注册区/县编码")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string CountyCode { get; set; }
        /// <summary>
        /// 身份证号
        /// </summary>	
        [Display(Name = "身份证号")]
        [Required(ErrorMessage = "{0} 不能为空")]
        [RegularExpression(RegexPatterns.ID_CARD, ErrorMessage = "{0} 应为18位中国公民有效身份证号")]
        public string IdentityCardNo { get; set; }
        /// <summary>
        /// 身份证正面照片
        /// </summary>	
        [Display(Name = "身份证正面照片")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string IdentityCardPath { get; set; }
        /// <summary>
        /// 身份证背面照片
        /// </summary>	
        [Display(Name = "身份证背面照片")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string IdentityCardBackPath { get; set; }
        /// <summary>
        /// 真实姓名
        /// </summary>
        [Display(Name = "真实姓名")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string RealName { get; set; }
        /// <summary>
        /// 是否实名认证
        /// </summary>
        public bool IsRealNameVerified { get; set; }
        /// <summary>
        /// 实名认证拒绝原因
        /// </summary>
        public string RealNameVerifiesRefuse { get; set; }      
        /// <summary>
        /// 配送箱长
        /// </summary>
        [Display(Name = "配送箱长")]
        public decimal DeliveryBoxLength { get; set; }
        /// <summary>
        /// 配送箱宽
        /// </summary>
        [Display(Name = "配送箱宽")]
        public decimal DeliveryBoxWidth { get; set; }
        /// <summary>
        /// 配送箱高
        /// </summary>
        [Display(Name = "配送箱高")]
        public decimal DeliveryBoxHeight { get; set; }
        /// <summary>
        /// 健康证类型
        /// </summary>
        [Display(Name = "健康证类型")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public DriverHealthCertificateType HealthCertificateType { get; set; }
        /// <summary>
        /// 健康证图片
        /// </summary>
        [Display(Name = "健康证图片")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public string HealthCertificate { get; set; }

        /// <summary>
        /// 个人保险单信息
        /// </summary>
        [Display(Name = "个人保险单信息")]
        public int PersonalInsuranceRecordId { get; set; }

        /// <summary>
        /// 是否已培训
        /// </summary>
        [Display(Name = "是否已培训")]
        public bool? IsTrained { get; set; }
        /// <summary>
        /// 是否培训通过
        /// </summary>
        [Display(Name = "是否培训通过")]
        public bool? IsTrainPassed { get; set; }
        /// <summary>
        /// 培训通过时间
        /// </summary>
        [Display(Name = "培训通过时间")]
        public DateTime? TrainPassedTime { get; set; }
        /// <summary>
        /// 登录密码
        /// </summary>
        [Display(Name = "登录密码")]
        public string Password { get; set; }
        /// <summary>
        /// 工作状态(工作中、休息中、已停运)
        /// </summary>
        [Display(Name = "工作状态(工作中、休息中、已停运)")]
        public DriverWorkingStatus WorkingStatus { get; set; }
        /// <summary>
        /// 是否是保利润
        /// </summary>
        public bool IsGuaranteedProfit { get; set; }
        /// <summary>
        /// 劳务公司Id
        /// </summary>
        [Display(Name = "劳务公司Id")]
        [Required(ErrorMessage = "{0} 不能为空")]
        public long WorkCompanyId { get; set; }
        /// <summary>
        /// 驾驶证图片
        /// </summary>	
        [Display(Name = "驾驶证图片")]
        public string License { get; set; }
        /// <summary>
        /// 驾驶证副页
        /// </summary>	
        [Display(Name = "驾驶证副页")]
        public string LicenseDeputyPage { get; set; }
        /// <summary>
        /// 行驶证正面图片
        /// </summary>
        [Display(Name = "行驶证正面图片")]
        public string VehicleLicense { get; set; }
        /// <summary>
        /// 行驶证车照图片
        /// </summary>
        [Display(Name = "行驶证车照图片")]
        public string VehicleLicenseDeputyPage { get; set; }
        /// <summary>
        /// 车辆照片(前方)地址
        /// </summary>
        [Display(Name = "车辆照片(前方)地址")]
        public string VehiclePhotoFrontPath { get; set; }
        /// <summary>
        /// 车辆照片(背后)地址
        /// </summary>
        [Display(Name = "车辆照片(背后)地址")]
        public string VehiclePhotoBackPath { get; set; }


    }
}
